package impl

import (
	"gitee.com/hexug/vblog/tree/master/api/apps"
	"gitee.com/hexug/vblog/tree/master/api/apps/post"
	"gitee.com/hexug/vblog/tree/master/api/apps/tag"
	"gitee.com/hexug/vblog/tree/master/api/conf"
	"gorm.io/gorm"
)

// tag的具体实现
type impl struct {
	Db   *gorm.DB
	Blog post.Server
}

// Name tag的Name方法，为了实现ioc的接口
func (i *impl) Name() string {
	return tag.AppName
}

// Init tag的Init方法，为了实现ioc的接口
//
// 实现的功能是提前把mysql的链接池搞过来
func (i *impl) Init() error {
	i.Db = conf.C().Mysql.ORM().Debug()
	i.Blog = apps.GetApp(post.AppName).(post.Server)
	return nil
}

// 初始化方法 将app注册到IOC
func init() {
	apps.RegisterApp(&impl{})
}
